package com.ai.service.cms.user;

import java.util.List;

import com.ai.common.model.Pagination;
import com.ai.model.edu.cms.backoperator.Role;
import com.ai.model.edu.cms.backoperator.dto.RoleDTO;
import com.ai.model.edu.cms.backoperator.vo.RoleVO;

public interface RoleService {
    /**
     * Description ： 根据DTO查找角色翻页信息
     * 
     * nyj
     * 
     * @param roleDTO
     * @return
     * @since
     *
     */
    public Pagination<RoleVO> selectRolePagByDTO(RoleDTO roleDTO);

    /**
     * Description ： 查找所有角色信息
     * 
     * nyj
     * 
     * @return
     * @since
     *
     */
    public List<RoleVO> selectAllRoleInfo();

    /**
     * Description ： 新增角色信息
     * 
     * nyj
     * 
     * @since
     *
     */
    public void addRoleInfo(Role role);

    /**
     * Description ： 根据角色名称查找角色信息
     * 
     * nyj
     * 
     * @param roleName
     * @return
     * @since
     *
     */
    public RoleVO selectRoleByRoleName(String roleName);

    /**
     * Description ：启用角色
     * 
     * nyj
     * 
     * @param roleDTO
     * @return
     * @since
     *
     */
    public int enableRole(RoleDTO roleDTO);

    /**
     * Description ：冻结角色
     * 
     * nyj
     * 
     * @param roleDTO
     * @return
     * @since
     *
     */
    public int unableRole(RoleDTO roleDTO);

    /**
     * Description ： 根据角色ids 查询可用角色信息<br>
     * 
     * yangwb
     * 
     * @param ids
     * @return
     * @since
     * 
     */
    public List<RoleVO> findRoleVOsByIds(List<Long> ids);

    /**
     * Description ： 根据ID删除角色
     * 
     * nyj
     * 
     * @param roleDTO
     * @return
     * @since
     *
     */
    public int deleteRoleById(RoleDTO roleDTO);
}
